/**
 1.AOP的概念：Aspect Oriented Programming（面向切面编程）
 2.可配置AOP框架实现

 AOP使用场景
 AOP用来封装横切关注点，具体可以在以下的场景中使用：
 权限
 缓存
 错误处理
 调试
 记录跟踪
 持久化
 同步
 事务
 等等。。。
 ----------------------------------------------AOP框架----------------------------------------------------------
 核心业务
 Imanager      （抽象）
    |                               proxyFactprybean                beanfactory             properties配置文件
 IManagerImpl （实现）                  创造代理类                        工厂类
                        《——————》       target           《-----》                 《------》
切面                                     a'dvice
 advice         （抽象）
 |
 LogAdvice      （实现）
---------------------------------------------------------------------------------------------------------------


 */

package 第十二章_反射与内省.第十二章_反射与内省_AOP框架;

import org.junit.Test;

import java.io.InputStream;

public class AOP框架 {
    @Test
    public void testrun(){
        InputStream in=Thread.currentThread().getContextClassLoader()
                .getResourceAsStream("第十二章_反射与内省/第十二章_反射与内省_AOP框架/bean.properties");
        BeanFactory beanFactory=new BeanFactory(in);
        ProxyFactoryBean proxyFactoryBean=(ProxyFactoryBean) beanFactory.getBean("bean");
        IManager proxy =(IManager) proxyFactoryBean.getProxy();
        proxy.add("我是一只猫");
    }
}
